Revision:
File handling is an important part of any web application. Python has several functions for creating, reading, updating, and deleting files.
The key function for working with files in Python is the open() function. The open() function takes two parameters: filename and mode.There are four different methods (modes) for opening a file:
"r" - read - default value. Opens a file for reading; error if the file does not exist
"a" - append - opens a file for appending; creates the file if it does not exist
"w" - write - opens a file for writing; creates the file if it does not exist
"x" - create - creates the specified file; returns an error if the file exists
In addition you can specify if the file should be handled as binary or text mode:
"t" - text - default value. Text mode
"b" - binary - binary mode (e.g. images)
syntax: to open a file for reading it is enough to specify the name of the file:" f = open("demofile.txt") ", which is the same as " f = open("demofile.txt", "rt") "
Because "r" for read, and "t" for text are the default values, you do not need to specify them.
The open() function returns a file object, which has a read() method for reading the content of the file:
Example 1:
f = open("demofile.txt", "r") print(f.read())
If the file is located in a different location, you will have to specify the file path, like this:
Example 2:
f = open("D:\\myfiles\welcome.txt", "r") print(f.read())
By default the read() method returns the whole text, but you can also specify how many characters you want to return:
Example 3: return the 5 first characters of the file
f = open("demofile.txt", "r") print(f.read(5))
You can return one line by using the readline() method:
Example 4: read one line of the file:
f = open("demofile.txt", "r") print(f.readline())
By calling readline() two times, you can read the two first lines:
Example 5: read two lines of the file:
f = open("demofile.txt", "r") print(f.readline()) print(f.readline())
By looping through the lines of the file, you can read the whole file, line by line.
Example 6: loop through the file line by line:
f = open("demofile.txt", "r") for x in f: print(x)
It is a good practice to always close the file when you are done with it.
Example 7: close the file when you are finish with it:
f = open("demofile.txt", "r") print(f.readline()) f.close()
To write to an existing file, you must add a parameter to the open() function:
"a" - append - will append to the end of the file
"w" - write - will overwrite any existing content
Example 8: open the file "demofile2.txt" and append content to the file:
f = open("demofile2.txt", "a") f.write("Now the file has more content!") f.close() #open and read the file after the appending: f = open("demofile2.txt", "r") print(f.read())
Example 9: open the file "demofile3.txt" and overwrite the content:
f = open("demofile3.txt", "w") f.write("Woops! I have deleted the content!") f.close() #open and read the file after the appending: f = open("demofile3.txt", "r") print(f.read())
Note: the "w" method will overwrite the entire file.
To create a new file in Python, use the open() method, with one of the following parameters:
"x" - create - will create a file; returns an error if the file exist
"a" - append - will create a file if the specified file does not exist
"w" - write - will create a file if the specified file does not exist
Example 10: create a file called "myfile.txt":
f = open("myfile.txt", "x")
Example 11: create a new file if it does not exist:
f = open("myfile.txt", "w")
To delete a file, you must import the OS module, and run its os.remove() function.
Example 12: remove the file "demofile.txt":
import os os.remove("demofile.txt")
To avoid getting an error, you might want to check if the file exists before you try to delete it.
Example 13: check if file exists, then delete it:
import os if os.path.exists("demofile.txt"): os.remove("demofile.txt") else: print("The file does not exist")
To delete an entire folder, use the os.rmdir() method:
Example 14: remove the folder "myfolder":
import os os.rmdir("myfolder")